home *** CD-ROM | disk | FTP | other *** search
/ Item MB Quick & Easy 2.0 / Item MB Quick & Easy 2.0.iso / mbfacad / eaitzrn.lsp < prev    next >
Lisp/Scheme  |  1998-03-15  |  13KB  |  352 lines

  1. ;Zeichnungsrahmen erstellen
  2. (defun EAITzrn ( AIT_ax AIT_ms1 AIT_ms2 / DAT1 SCH SCHBL
  3.                           AIT-Z AIT-X AIT-Y AIT-P1 AIT-P2 AIT-dat AIT-txt
  4.                           AIT-n AIT-ln AIT-Xmax AIT-Ymax AIT-mlst1 AIT-mlst2
  5.                           AIT-Xr AIT-Yr AIT-AX AIT-AY AIT-ok masslist
  6.                           AIT-Name AIT-Tag AIT-Jahr AIT-Masstab dialogwert
  7.                           stichwort thema ebene blatt01 blattwert blatthoehe)
  8.   (EAITvari)
  9.   (EAITvars)
  10.   ;Welt-Koord
  11.   (command EAITbks EAITbwe)
  12.  
  13.   ;Argumente OK?
  14.   (if (not AIT_ax)
  15.       (setq AIT_ax EAITax)
  16.       (setq EAITax AIT_ax
  17.             AIT_ms1 nil
  18.             AIT_ms2 nil
  19.             m_auto "0"
  20.       )
  21.   )
  22.  
  23.   ;Name, Datum, etc...
  24.   (setq AIT-dat (open (strcat EAITpfm "user.txt") "r"))
  25.   (if AIT-dat (progn
  26.                 (setq AIT-txt (read-line AIT-dat) )
  27.                 (close AIT-dat)
  28.                 (if AIT-txt
  29.                   (progn
  30.                     (setq
  31.                       AIT-Name ""
  32.                       AIT-n 2
  33.                       AIT-ln (strlen AIT-txt)
  34.                     )
  35.                     (while (and (<= AIT-n AIT-ln)(/= (substr AIT-txt AIT-n 1) "\""))
  36.                       (setq AIT-Name (strcat AIT-Name (substr AIT-txt AIT-n 1))
  37.                             AIT-n (1+ AIT-n)
  38.                       )
  39.                     )
  40.                   )
  41.                   (setq AIT-Name " ")
  42.                 )
  43.               )
  44.               (setq AIT-Name " ")
  45.   )
  46.   (setq AIT-Tag     (strcat (substr (rtos (getvar "cdate") 2 0) 7 2) "." (substr (rtos (getvar "cdate") 2 0) 5 2) ".")
  47.         AIT-Jahr    (substr (rtos (getvar "cdate") 2 0) 1 4)
  48.         AIT-blatt   "1 ( 1 )"
  49.         AIT-dwg     (getvar "DWGNAME")
  50.    )
  51.  
  52.   (setq 
  53.               AIT-mlst1 (list   1.0     2.0     5.0    10.0     20.0     50.0    100.0     200.0     500.0     1000.0       0.5     0.2      0.1     0.05   )
  54.               AIT-mlst2 (list "1 : 1" "1 : 2" "1 : 5" "1 : 10" "1 : 20" "1 : 50" "1 : 100" "1 : 200" "1 : 500" "1 : 1000" "2 : 1" "5 : 1" "10 : 1" "20 : 1")
  55.               AIT-rahmenliste (list "DIN A4" "DIN A3" "DIN A2" "DIN A1" "DIN A0")
  56.               AIT_ms1 (nth 0 AIT-mlst1)
  57.               AIT_ms2 (nth 0 AIT-mlst2)
  58.               rahmen (nth 0 AIT-rahmenliste)
  59.               rahmennr 0
  60.   )
  61.  ;Festlegung von Abmassen fuer Mansfengenerierung:
  62.  (setq
  63.       masslist (list
  64.                (list 210.0 297.0)(list 420.0 297.0)
  65.                (list 594.0 420.0)(list 841.0 594.0)
  66.                (list 1189.0 841.0)
  67.                )
  68.  )
  69.   
  70.   (setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))   
  71.   (if (not (new_dialog "rahmen" dat_zeig2)) (exit))
  72.   (start_list "masstab" 3)
  73.    (mapcar 'add_list AIT-mlst2)
  74.   (end_list)
  75.  
  76.   (start_list "rahmen1" 3)
  77.    (mapcar 'add_list AIT-rahmenliste)
  78.   (end_list)
  79.   (setq thema "Hilfeeintrag fuer einen item-Befehl"
  80.         stichwort ":item1"
  81.   )
  82.   (action_tile "help" "(hilfe stichwort thema)")
  83.  
  84.  (action_tile "m_auto" "(setq m_auto $value)(mode_tile \"masstab\" (atoi m_auto))")
  85.  (action_tile "masstab" "(setq AIT_ms1 (nth (atoi $value)  AIT-mlst1) AIT_ms2 (nth (atoi $value)  AIT-mlst2))")
  86.  (action_tile "rahmen1" "(setq rahmennr (atoi $value) rahmen (nth (atoi $value)  AIT-rahmenliste))")
  87.  (action_tile "cancel" "(done_dialog 0)")
  88.  (action_tile "bemebene" "(done_dialog 3)")
  89.  (setq dialogwert (start_dialog))   
  90.  (start_dialog)
  91.  (unload_dialog dat_zeig2)
  92.  
  93. ;Anpassung Hauer-Projektarbeiten
  94. ;bei Plazierung im Papierbereich:
  95. (if (= EAITmansfen3d "ok")
  96.   (setq AIT_dialogwert dialogwert)
  97. )
  98.  
  99.  (if (= dialogwert 3)
  100.   (progn
  101.   
  102. (if (= m_auto "1")
  103.  (setq
  104.      AIT_ms1 nil
  105.      AIT_ms2 nil
  106.  )
  107. )
  108.  
  109. ;Anpassung Hauer-Projektarbeiten
  110. ;bei Plazierung im Papierbereich Masstab = 1:1:
  111. (if (= EAITmansfen3d "ok")
  112.  (progn
  113.  (setq
  114.    AIT_mauto m_auto
  115.    AIT_ms1a AIT_ms1
  116.    AIT_ms2a AIT_ms2
  117.    AIT_rahmen rahmen
  118.    AIT_rahmennr rahmennr
  119.    AIT_ms1 1.0
  120.    AIT_ms2 "1 : 1"
  121.    rxlu (car (nth AIT_rahmennr AIT-p1list))
  122.    rylu (cadr (nth AIT_rahmennr AIT-p1list))
  123.    plu (list rxlu rylu 0.0)
  124.    rxro (car (nth AIT_rahmennr masslist)) ryro (cadr (nth AIT_rahmennr masslist))
  125.    pro (list rxro ryro 0.0)
  126.    pro (polar pro 0.0 rxlu)
  127.  
  128.    rahmendata (nth AIT_rahmennr masslist)
  129.  )
  130.  (command "_zoom" "_w" plu pro)
  131.  
  132.  )
  133. )
  134. ;Ende Anpassung Hauer-Projektarbeiten
  135.  
  136. (setq AIT_ax (substr rahmen 5 2))
  137.  
  138.   ;Vars zuweisen nach DIN A?
  139.   (if (> (caddr (getvar "extmin"))(caddr (getvar "extmax")))(setq AIT-Z(caddr (getvar "extmin")))(setq AIT-Z(caddr (getvar "extmax"))))
  140.   (cond ((= AIT_ax "A4") (setq AIT-Xmax  180.0  AIT-Ymax 195.0  AIT-AX  205.0  AIT-AY 5.0))
  141.         ((= AIT_ax "A3") (setq AIT-Xmax  410.0  AIT-Ymax 287.0  AIT-AX  415.0  AIT-AY 5.0))
  142.         ((= AIT_ax "A2") (setq AIT-Xmax  584.0  AIT-Ymax 410.0  AIT-AX  589.0  AIT-AY 5.0))
  143.         ((= AIT_ax "A1") (setq AIT-Xmax  831.0  AIT-Ymax 584.0  AIT-AX  836.0  AIT-AY 5.0))
  144.         ((= AIT_ax "A0") (setq AIT-Xmax 1179.0  AIT-Ymax 831.0  AIT-AX 1184.0  AIT-AY 5.0))
  145.         (T               (setq AIT-Xmax  180.0  AIT-Ymax 195.0  AIT-AX  205.0  AIT-AY 5.0  AIT_ax "A4"))
  146.   )
  147.  
  148.   ;welcher Maßstab / ermitteln?
  149.   (if (or (not AIT_ms1)(not AIT_ms2))
  150.       (progn
  151.         (setq AIT-X (- (car (getvar "extmax"))(car (getvar "extmin")))
  152.               AIT-Y (- (cadr (getvar "extmax"))(cadr (getvar "extmin")))
  153.               AIT-n 1
  154.               AIT-Xr (* AIT-Xmax 0.05)
  155.               AIT-Yr (* AIT-Ymax 0.05)
  156.         )
  157.         (while (and (< AIT-n 14)(or (> AIT-X AIT-Xr)(> AIT-Y AIT-Yr)) )
  158.               (setq AIT-Xr (* AIT-Xmax (nth AIT-n AIT-mlst1))
  159.                     AIT-Yr (* AIT-Ymax (nth AIT-n AIT-mlst1))
  160.                     AIT-n  (1+ AIT-n)
  161.               )
  162.         )
  163.         (if (> AIT-n 1)(setq AIT-n (1- AIT-n)))
  164.         (setq AIT-Masstab (nth AIT-n AIT-mlst2)
  165.               EAITms      (nth AIT-n AIT-mlst1)
  166.         )
  167.         (setvar "DIMSCALE" EAITms)
  168.       )
  169.       (progn
  170.           (setq AIT-Masstab AIT_ms2 EAITms AIT_ms1 )
  171.           (setvar "DIMSCALE" EAITms)
  172.       )
  173.   )
  174.  
  175.  
  176.  (if (/= dialogwert1 1)
  177.   (progn
  178.   (if (not AIT-ok)(setq AIT-ok (EAITmg "mb_mld4" "004")))
  179.  
  180.  
  181.  
  182. ;**************************
  183.   ;Rahmen + Schriftfeld einfügen / Maßstab manuell
  184.   
  185.   (if (= AIT-ok (EAITmg "mb_mld4" "004"))
  186.       (progn
  187.         (EAITmkr "S" nil)         ;Maßstab-Faktor sichern
  188.         (setvar "DIMSCALE" EAITms)
  189.         (setvar "OSMODE" 0)
  190.         (setq AIT-P1(list 0.0 0.0 AIT-Z)
  191.               AIT-P2(list (* AIT-AX EAITms)(* AIT-AY EAITms) AIT-Z)
  192.         )
  193.  
  194.         ;Anpassung Hauer-Projektarbeiten EP anpassen
  195.         ;bei Plazierung im Papierbereich mehrere Rahmen moeglich:
  196.         (if (= EAITmansfen3d "ok")
  197.          (progn
  198.            (setq AIT-P1 (nth AIT_rahmennr AIT-p1list)
  199.                  AIT-P2 (polar AIT-P1 0.0 AIT-AX)
  200.                  AIT-P2 (polar AIT-P2 (/ pi 2) AIT-AY)
  201.            )
  202.            ;schon ein Blatt in der Groesse eingefuegt:
  203.            (if (or (/= (member AIT_rahmen AIT-noblattlist) nil)(/= (member AIT_rahmen AIT-blattlist) nil))
  204.             (progn
  205.               (setq blatthoehe (+ (cadr (nth AIT_rahmennr masslist)) 100))
  206.               ;Checken des EP:
  207.               (while (or (/= (member AIT-P1 AIT-plulist) nil)(/= (member AIT-P1 AIT-noplulist) nil))
  208.                 (setq
  209.                     AIT-P1 (polar AIT-P1 (/ pi 2) blatthoehe)
  210.                     AIT-P2 (polar AIT-P2 (/ pi 2) blatthoehe)
  211.                     plu AIT-P1
  212.                     rxro (car (nth AIT_rahmennr masslist)) ryro (cadr (nth AIT_rahmennr masslist))
  213.                     pro (polar plu 0.0 rxro)
  214.                     pro (polar pro (/ pi 2) ryro)
  215.                  )
  216.  
  217.               ) ;while
  218.  
  219.               (command "_zoom" "_w" plu pro)
  220.  
  221.              ) ;progn
  222.            ) ;if
  223.  
  224.          ) ;progn
  225.         ) ;if
  226.  
  227.         (if (NOT (tblsearch "BLOCK" "EAITtbox"))
  228.                (command EAITege (strcat EAITpfm "EAITtbox") '(0 0) nil)
  229.         )
  230.  
  231.         (setq SCH (tblsearch "BLOCK" "EAITtbox")
  232.               SCHBL (entnext (EAITDXF -2 SCH))
  233.               DAT1 (entget SCHBL)
  234.         )
  235.         (if (= (EAITDXF 3 DAT1) "")
  236.            (progn
  237.                (command EAITege (strcat "EAITtbox=" EAITpfm "EAITtbox") '(0 0) nil
  238.                         EAITreg
  239.                )
  240.            
  241. ;*******************Schriftfeld sprachabhaengig machen
  242.        
  243.                (setq INF (tblsearch "BLOCK" "EAITtbox")
  244.                      DAT1 (entget (EAITDXF -2 INF))
  245.                )
  246.                (while (/= DAT1 nil)       
  247.                       (if (= (EAITDXF 0 DAT1) "ATTDEF")
  248.                 
  249.                        (cond ((= (EAITDXF 2 DAT1) "EAIT_DESIGNATION-1")
  250.                                (entmod (subst (cons 3 (EAITmg "mb_mld20" "002"))(assoc 3 DAT1) DAT1))
  251.                              )
  252.                              ((= (EAITDXF 2 DAT1) "EAIT_DESIGNATION-2")
  253.                                (entmod (subst (cons 3 (EAITmg "mb_mld20" "003"))(assoc 3 DAT1) DAT1))
  254.                              )
  255.                              ((= (EAITDXF 2 DAT1) "EAIT_NUMBER")
  256.                                (entmod (subst (cons 3 (EAITmg "mb_mld20" "004"))(assoc 3 DAT1) DAT1))
  257.                              )
  258.                              ((= (EAITDXF 2 DAT1) "EAIT_MATERIAL")
  259.                                (entmod (subst (cons 3 (EAITmg "mb_mld20" "005"))(assoc 3 DAT1) DAT1))
  260.                              )
  261.                              ((= (EAITDXF 2 DAT1) "EAIT_SHEET")
  262.                                (entmod (subst (cons 3 (EAITmg "mb_mld20" "006"))(assoc 3 DAT1) DAT1))
  263.                              )
  264.                              ((= (EAITDXF 2 DAT1) "EAIT_SCALE-1")
  265.                                (entmod (subst (cons 3 (EAITmg "mb_mld20" "007"))(assoc 3 DAT1) DAT1))
  266.                              )
  267.                              ((= (EAITDXF 2 DAT1) "EAIT_SCALE-2")
  268.                                (entmod (subst (cons 3 (EAITmg "mb_mld20" "008"))(assoc 3 DAT1) DAT1))
  269.                              )
  270.                              ((= (EAITDXF 2 DAT1) "EAIT_YEAR")
  271.                                (entmod (subst (cons 3 (EAITmg "mb_mld20" "009"))(assoc 3 DAT1) DAT1))
  272.                              )
  273.                              ((= (EAITDXF 2 DAT1) "EAIT_DAY")
  274.                                (entmod (subst (cons 3 (EAITmg "mb_mld20" "010"))(assoc 3 DAT1) DAT1))
  275.                              )
  276.                              ((= (EAITDXF 2 DAT1) "EAIT_DESIGNER")
  277.                                (entmod (subst (cons 3 (EAITmg "mb_mld20" "011"))(assoc 3 DAT1) DAT1))
  278.                              )
  279.                        );cond
  280.                       );if
  281.                       (setq DAT1 (entnext (EAITDXF -1 DAT1)))
  282.                       (if (/= DAT1 nil)(setq DAT1 (entget DAT1)))
  283.                
  284.                );while
  285.            );progn
  286.         );if
  287.  
  288.         
  289.         (command EAITege (strcat EAITpfn "EAIT" AIT_ax) AIT-P1 EAITms "" "")
  290.         ;Anpassung Projektarbeiten Hauer:
  291.         (setq AIT_rahmenelement (entlast))
  292.         ;Ende Anpassung Hauer
  293.         (command EAITege (strcat EAITpfm "EAITtbox") AIT-P2 EAITms "" ""  "" "" "" "" "" "" "" "" "" "")
  294.         ;Anpassung Projektarbeiten Hauer:
  295.         (setq AIT_schriftfeldelement (entlast))
  296.         ;Ende Anpassung Hauer
  297.  
  298. ;*******************Schriftfeld-Eintraege setzen
  299.  
  300.        (setq SCH (entget (entlast))
  301.              SCHBL (entnext (EAITDXF -1 SCH))
  302.              DAT1 (entget SCHBL)
  303.        )
  304.        (while (= (EAITDXF 0 DAT1) "ATTRIB")
  305.                (cond 
  306.                      ((= (EAITDXF 2 DAT1) "EAIT_NUMBER")
  307.                        (entmod (subst (cons 1 (getvar "dwgname"))(assoc 1 DAT1) DAT1))
  308.                      )
  309.                      ((= (EAITDXF 2 DAT1) "EAIT_SCALE-1")
  310.                        (entmod (subst (cons 1 AIT-Masstab)(assoc 1 DAT1) DAT1))
  311.                      )
  312.                      ((= (EAITDXF 2 DAT1) "EAIT_YEAR")
  313.                        (entmod (subst (cons 1 AIT-Jahr)(assoc 1 DAT1) DAT1))
  314.                      )
  315.                      ((= (EAITDXF 2 DAT1) "EAIT_DAY")
  316.                        (entmod (subst (cons 1 AIT-Tag)(assoc 1 DAT1) DAT1))
  317.                      )
  318.                      ((= (EAITDXF 2 DAT1) "EAIT_DESIGNER")
  319.                        (entmod (subst (cons 1 AIT-Name)(assoc 1 DAT1) DAT1))
  320.                      )
  321.                );cond
  322.                (setq DAT1 (entget (entnext (EAITDXF -1 DAT1))))
  323.        );while
  324.  
  325.         
  326. ;*****************Schriftfeld ergaenzen (DDATTE zur Benutzereingabe)
  327.  
  328.         (command EAITdda (entlast)
  329.                  EAITreg
  330.         )
  331.         (command EAITbks EAITbvo)
  332.         (EAITvarz)
  333.       )
  334.       (progn
  335.         (command EAITbks EAITbvo)
  336.         (EAITvarz)
  337.         (menucmd "i=din-ms")
  338.         (menucmd "i=*")
  339.       )
  340.   )
  341.   (princ)
  342.   
  343.   )
  344.  )
  345.  
  346.  );progn
  347. );if
  348.  
  349. (princ) 
  350. )
  351. (princ)
  352.